//--------------------------------------------------------------------------------
// This file is a portion of the D2D1Renderer.  It is distributed
// under the MIT License, available in the root of this distribution and 
// at the following URL:
//
// http://www.opensource.org/licenses/mit-license.php
//
// Copyright (c) Mirco Timmermann
//
// Sources: http://www.w3.org/TR/2dcontext/
//--------------------------------------------------------------------------------
#pragma once

#ifndef __CANVAS_FLOAT
#define __CANVAS_FLOAT
#endif

#include <string>


class CanvasTransformation {

///////////////////////////////////////////////////////////////////////////////////////////////
//                                  TRANSFORM INTERFACE                                      //
///////////////////////////////////////////////////////////////////////////////////////////////

public:
	
	CanvasTransformation::CanvasTransformation() {
		
	}

#ifdef __CANVAS_DOUBLE
	// transformations (default transform is the identity matrix)
	virtual void scale(double x, double y) = 0;
	virtual void rotate(double angle) = 0;
	virtual void translate(double x, double y) = 0;
	virtual void transform(double a, double b, double c, double d, double e, double f) = 0;
	virtual void setTransform(double a, double b, double c, double d, double e, double f) = 0;
#endif

#ifdef __CANVAS_FLOAT
	// transformations (default transform is the identity matrix)
	virtual void scale(float x, float y) = 0;
	virtual void rotate(float angle) = 0;
	virtual void translate(float x, float y) = 0;
	virtual void transform(float a, float b, float c, float d, float e, float f) = 0;
	virtual void setTransform(float a, float b, float c, float d, float e, float f) = 0;
#endif

};
